package org.example.back.service.advice;

import org.example.back.entity.plan.MuscleGainPlan;
import org.example.back.mapper.plan.MuscleGainPlanMapper;
import org.example.back.service.healthassistant.HealthAssistantService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.time.LocalDate;


@Service
public class MuscleGainPlanAdviceService {
    @Autowired
    private MuscleGainPlanMapper mapper;
    @Autowired
    private HealthAssistantService assistant;

    public String getAdvice(Integer userId, LocalDate startDate) {
        MuscleGainPlan plan = mapper.selectByUserIdAndStartDate(userId, startDate);
        if (plan == null) return "未找到增肌计划";

        String prompt = String.format("""
            请根据以下减脂计划数据生成包括以下四类建议内容（不要生成表格，只生成文字）：
            1. 阶段建议（如适应期、初步成果、中期检查、目标完成等）
            2. 每周训练计划（逐日列出训练安排）
            3. 饮食建议（包含蛋白质、碳水、脂肪摄入建议，每日热量，三餐建议）
            4. 其他健康建议（如睡眠建议、恢复策略、进度追踪）

            - 增肌目标: %s
            - 目标增肌: %.1fkg
            - 每周增肌: %.1fkg
            - 重点锻炼部位: %s
            - 力量提升目标: %s
            - 开始时间: %s
            - 持续时间: %s
            - 频率: %s
            """,
            plan.getGoal(), plan.getTargetMuscleGain(), plan.getWeeklyMuscleGain(),
            plan.getFocusArea(), plan.getStrengthGoal(), plan.getStartDate(), plan.getDuration(), plan.getTrainingFrequency()
        );

        return assistant.getAnswerFromLLM(prompt);
    }
}